﻿using Microsoft.EntityFrameworkCore;
using PasteLoggerBoard.reportmodels;
using PasteLoggerBoard.serilogmodels;
using PasteLoggerBoard.usermodels;
using Volo.Abp.EntityFrameworkCore;

namespace PasteLoggerBoard
{
    /// <summary>
    /// 
    /// </summary>
    public interface IPasteLoggerBoardDbContext : IEfCoreDbContext
    {
        /* Add DbSet for each Aggregate Root here. Example:
         * DbSet<Question> Questions { get; }
         */
        /// <summary>
        /// 用户信息
        /// </summary>
        public DbSet<UserInfo> UserInfo { get; set; }
        /// <summary>
        /// 权限信息
        /// </summary>
        public DbSet<RoleInfo> RoleInfo { get; set; }
        /// <summary>
        /// 角色信息
        /// </summary>
        public DbSet<GradeInfo> GradeInfo { get; set; }
        /// <summary>
        /// 角色权限
        /// </summary>
        public DbSet<GradeRole> GradeRole { get; set; }
        ///// <summary>
        ///// 部门信息
        ///// </summary>
        //public DbSet<PartInfo> PartInfo { get; set; }
        ///// <summary>
        ///// 部门信息
        ///// </summary>
        //public DbSet<BindUserPart> BindUserPart { get; set; }


        /// <summary>
        /// 日志日报表
        /// </summary>
        public DbSet<DayReport> DayReport { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public DbSet<LogError> LogError { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public DbSet<LogException> LogException { get; set; }

        /// <summary>
        /// 日志消息info
        /// </summary>
        public DbSet<LogInfo> LogInfo { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public DbSet<LogWarning> LogWarning { get; set; }

        /// <summary>
        /// 推送对象
        /// </summary>
        public DbSet<WebHooker> WebHooker { get; set; }

        /// <summary>
        /// 接收配置
        /// </summary>
        public DbSet<WebHookLink> WebHookLink { get; set; }

        /// <summary>
        /// 
        /// </summary>
        public DbSet<WebHookLog> WebHookLog { get; set; }

        /// <summary>
        /// 状态码数据报表
        /// </summary>
        public DbSet<StatusHourReport> StatusHourReport { get; set; }

        /// <summary>
        /// 状态码数据报表
        /// </summary>
        public DbSet<StatusDayReport> StatusDayReport { get; set; }

        /// <summary>
        /// 路径数据报表
        /// </summary>
        public DbSet<PathHourReport> PathHourReport { get; set; }

        /// <summary>
        /// 路径数据报表
        /// </summary>
        public DbSet<PathDayReport> PathDayReport { get; set; }

        /// <summary>
        /// 日志等级数据报表
        /// </summary>
        public DbSet<LevelHourReport> LevelHourReport { get; set; }

        /// <summary>
        /// 日志等级数据报表
        /// </summary>
        public DbSet<LevelDayReport> LevelDayReport { get; set; }

        /// <summary>
        /// 客户端IP的报表统计
        /// </summary>
        public DbSet<ClientIpHourReport> ClientIpHourReport { get; set; }

        ///// <summary>
        ///// 客户端IP的报表统计
        ///// </summary>
        //public DbSet<ClientIpDayReport> ClientIpDayReport {get;set;}

            /// <summary>
            /// 应用信息
            /// </summary>
            public DbSet<AppInfo> AppInfo {get;set;}

    }

}